home *** CD-ROM | disk | FTP | other *** search
/ Just Call Me Internet / Just Call Me Internet.iso / docs / protocol / rfc / rfc_txt / rfc0000 / rfc0385.txt < prev    next >
Text File  |  1997-08-06  |  13KB  |  340 lines

  1.  
  2.  
  3.  
  4.  
  5.  
  6.  
  7. NWG/RFC 385                                       Abhay K. Bhushan
  8. NIC 11357                                                  MIT-MAC
  9. Updates: RFC 354                                  August 18, 1972
  10. RFC 354
  11.  
  12.             COMMENTS ON THE FILE TRANSFER PROTOCOL (RFC 354)
  13.             ------------------------------------------------
  14.  
  15.    The following comments pertain to the File Transfer Protocol, NWG/RFC
  16.    354.  The comments include errata, further discussion, emphasis
  17.    points, and additions to the protocol.  I shall incorporate these
  18.    comments into the main protocol document after we have had sufficient
  19.    experience.
  20.  
  21.    1. Please note the following corrections:
  22.        (i)    Page 2, line 15:  replace user-FTP by server-FTP.
  23.        (ii)   Page 3, line 12:  replace III.A by III.C.
  24.        (iii)  Page 15, last para, line 1:  replace user s by user is.
  25.        (iv)   Page 28, line 21:  replace _CRCRLF_ by _CRLF_.
  26.        (v)    Page 27, line 10:  replace 451,451 by 451.
  27.        (vi)   Note that on Page 26, line 15 mode code is S|B|T|H.
  28.  
  29.    2. The language of RFC 354 reads that it is recommended for
  30.       hosts to implement the default parameters.  The sense of the
  31.       word recommended should be taken as required.  Thus the
  32.       required minimum implementations for FTP servers is:
  33.  
  34.            Type - ASCII (8-bit bytes)
  35.            Mode - Stream
  36.            Structure - File
  37.            Commands - RETR, STOR, USER (and PASS), SOCK and BYE
  38.  
  39.    3. The "Print File-ASCII" and "EBCIDIC Print File" types are
  40.       incorrectly specified (pages 10 and 11, RFC 354).  The real
  41.       problem with print files is of ASA (Fortran) vertical format
  42.       control.  Instead of the two print file types, there should
  43.       really be three types as described below:
  44.  
  45.            BCDIC - The sender transfers data using the EBCDIC
  46.                     character code and 8-bit transfer byte size.
  47.                     The _CRLF_ convention is used for vertical format
  48.                     control.  This type will be used for efficient
  49.                     transfer of EBCDIC files between systems which
  50.                     use EBCDIC for their internal character
  51.                     representation.
  52.  
  53.  
  54.  
  55.  
  56.  
  57.  
  58.                                                                 [Page 1]
  59.  
  60. NWG/RFC 385 Page 2
  61.  
  62.  
  63.            ASCII with ASA vertical format Control - This is the
  64.                     "Print file-ASCII" defined in RFC 354.  The
  65.                     server is to transform the data in accordance
  66.                     with ASA (Fortran) vertical format control
  67.                     procedures for printing on printers that
  68.                     still use this standard.  The data is to be
  69.                     transferred as 8-bit bytes.
  70.  
  71.            EBCDIC with ASA vertical format control - This is the
  72.                     EBCDIC Print File defined in RFC 354.  The
  73.                     server is to transform the data in accordance
  74.                     with ASA (Fortran) vertical format control
  75.                     standards but using the EBCDIC character code.
  76.                     The data is to be transferred in 8-bit bytes.
  77.  
  78.       The new types are to be denoted by symbols E for EBCDIC, P
  79.       for Print file-ASCII and F for Formatted (ASA standard)
  80.       EBCDIC print file.  A discussion of the ASA vertical format
  81.       control appears in NWG/RFC 189, Appendix C, and in
  82.       Communications of the ACM, Vol 7, No. 10, p. 606, October
  83.       1964.  According to the ASA vertical format control
  84.       standards, the first character of a formatted record is not
  85.       printed but determines vertical spacing as follows:
  86.  
  87.            Character    Vertical Spacing before printing
  88.            ---------    --------------------------------
  89.             Blank          One line
  90.               0            Two lines
  91.               1            To first line of next page
  92.               +            No advance
  93.  
  94.       In addition to the above four, there are more characters
  95.       (defined in Appendix C, RFC 189) which represent an IBM
  96.       extension to the ASA standard.
  97.  
  98.    4. A comparison of "stream" and "text" modes is in order.  The
  99.       advantages of "stream" mode are:
  100.            1) The receiver need not scan the incoming bytes.
  101.            2) It is usable with all data types.
  102.  
  103.       The disadvantages are:
  104.            1) The EOF by closing the connection is not reliable.
  105.  
  106.            2) The EOR by ASCII _CRLF_ is unreliable as the _CRLF_
  107.               really may be valid data rather than an EOR.  It is
  108.               an EOR only if the sender and receiver have a _prior_
  109.               agreement to that effect.
  110.  
  111.  
  112.  
  113.  
  114.                                                                 [Page 2]
  115.  
  116. NWG/RFC 385 Page 2
  117.  
  118.  
  119.    5. In the Block mode the protocol states that left-most bits not
  120.       containing information should be zero.  It appears that some
  121.       sites have difficulty sending null bytes in the beginning of
  122.       a block.  Since it is really not necessary for these bytes to
  123.       be zero, these bits are now defined to be "don't care" bits.
  124.  
  125.    6. In the use of block mode it is possible for two or more
  126.       conditions requiring different descriptor codes (suspected
  127.       errors and either end of record or end of file) to exist
  128.       simultaneously.  Such a possibility may be handled by sending
  129.       a separate EOR or EOF block with a zero byte count (this is
  130.       allowed by the protocol).  Also it should be noted that an
  131.       EOF is an implicit EOR.
  132.  
  133.    7. It needs to be emphasized again that the user-FTP must
  134.       "listen" on the data socket prior to sending a command
  135.       requiring a file transfer.  Specifically the user-FTP should
  136.       not wait for a 255 reply (server data socket) before doing
  137.       the "listen".  (The security check may be come later, as the
  138.       data connection can be closed if connection is to a socket
  139.       other than that specified by the 255 reply).  Although the
  140.       protocol suggests that the 255 reply would be sent before
  141.       making the connection, it does not guarantee that the 255
  142.       reply would arrive before the initiating RFC at the user
  143.       site.  The above argument also applies to receiving a a close
  144.       (NCP-CLS) on the data connection before receiving a reply
  145.       indicating the reason for the close (note assertion on page
  146.       24, paragraph 3, RFC 354).
  147.  
  148.    8. Although the protocol does not restrict closing or leaving
  149.       open the data connection in Block and Text modes, it should
  150.       be emphasized that the closing of the data connection, if it
  151.       is to be done at all, should be done immediately after the
  152.       file transfer rather than just after a new transfer command
  153.       is received.  This is because the server and user may have to
  154.       test whether the data connection is open or not before doing
  155.       a "listen" or an "init" respectively.
  156.  
  157.    9. It should be emphasized again that 'Type' supersedes 'Byte',
  158.       and that the TYPE command should be sent before the BYTE
  159.       command.
  160.  
  161.    10. It should be noted that both upper and lower case alphabetic
  162.        characters are to be treated identically in the command
  163.        syntax.  This applies also to the symbols for type, mode,
  164.        and structure.  For example, 'A' and 'a' both indicate ASCII
  165.        type.
  166.  
  167.  
  168.  
  169.  
  170.                                                                 [Page 3]
  171.  
  172. NWG/RFC 385 Page 2
  173.  
  174.  
  175.    11. It should be noted that in the 'LIST' command, the data
  176.        transfer is over the data connection in type ASCII.
  177.  
  178.    12. The following reply code is to be added:
  179.  
  180.                454 FTP:  Cannot connect to your data socket.
  181.  
  182.        This is a fail response any of the commands requiring data
  183.        transfer (including RETR, STOR, APPE, and LIST)
  184.  
  185.    13. Rather than use the append command for sending mail files, a
  186.        new command 'MLFL' (for mail file) is defined.  The syntax
  187.        of the mail file command is:
  188.  
  189.                MLFL <user>CRLF
  190.                where
  191.                <user> ::= <empty>| <NIC ident>| <sys ident>
  192.  
  193.        If the user field is empty or blank (one or more spaces),
  194.        then the mail is destined for a printer or other designated
  195.        place for site mail.  <NIC ident> refers to the standard
  196.        identification described in the NIC Directory of Network
  197.        Participant.  A serving host may keep a table mapping <NIC
  198.        ident> into <sys ident>.  This would provide for uniform
  199.        convenient usage.  <sys ident> is the user's normal
  200.        identification at the serving HOST.  The use of <sys ident>
  201.        would allow a network user to send mail to other users who
  202.        do not have NIC identification but whose <sys ident> is
  203.        known.
  204.  
  205.        The intent of this command is to enable a user at the user
  206.        site to mail data (in form of a file) to another user at the
  207.        server site.  It should be noted that the files to be mailed
  208.        are transmitted via the data connection in ASCII type.
  209.        These files should be appended to the destination user's
  210.        mail by the server in accordance with serving Host mail
  211.        conventions.  The mail my be marked as sent from the
  212.        particular using HOST and the user specified by the 'USER'
  213.        command.  The reply codes for the "MLFL" command are
  214.        identical to that in the "APPE" command, as shown below:
  215.  
  216.               COMMAND         SUCCESS         FAIL
  217.               -------         -------         ----
  218.                MLFL            250             451,454,500-506
  219.                 Sec. reply     252             452,453
  220.  
  221.    14. The 'MLFL' command for network mail, though a useful and
  222.        essential addition to the FTP command repertoire, does not
  223.  
  224.  
  225.  
  226.                                                                 [Page 4]
  227.  
  228. NWG/RFC 385 Page 2
  229.  
  230.  
  231.        allow TIP users to send mail conveniently without using
  232.        third hosts.  It would be more convenient for TIP users to
  233.        send mail over the TELNET connection instead of the data
  234.        connection as provided by the 'MLFL' command.  The following
  235.        'MAIL' command is therefore defined to send mail via the
  236.        TELNET connection:
  237.  
  238.                MAIL <user>CRLF
  239.  
  240.        the syntax of <user> is identical to that in the MLFL
  241.        command described above.  After the 'MAIL' command is
  242.        received, the server is to treat the following lines as text
  243.        of the mail sent by the user.  The mail text is to be
  244.        terminated by a line containing only a single period, that
  245.        is the character sequence ".CRLF" in a new line.  The
  246.        following new reply codes are defined to handle the mail
  247.        command:
  248.  
  249.           350 Enter mail, terminate by a line with only a '.'
  250.           256 Mail completed.
  251.  
  252.        The reply codes are:
  253.  
  254.               COMMAND         SUCCESS         FAIL
  255.               -------         -------         ----
  256.                MAIL            350             450,451,500-506
  257.                 Sec Reply      256
  258.  
  259.    15. An additional access control command called account (ACCT)
  260.        is now defined to facilitate accounting in systems such as
  261.        TENEX which require in addition to user and password, a
  262.        separate account specification.  The 'ACCT' command is
  263.        different from the 'PASS' command in that it is not
  264.        necessarily related to the 'USER' command and may arrive at
  265.        any time.  For example, a user may transfer different files
  266.        using different accounts.  The 'ACCT' command has the same
  267.        reply codes as the 'PASS' command (230 for success and 430-
  268.        432,500-506 for fail).  Some servers may require that an
  269.        account command must be sent before the user is "logged in".
  270.        For suchcases the success reply to the 'PASS' command could
  271.        be '330 Enter account'.
  272.  
  273.    16. Since password information is quite sensitive, it is
  274.        desirable in general to "mask" it or suppress type out.  It
  275.        appears that the server has really no fool-proof effective
  276.        way to achieve this.  It is therefore the user-FTP process
  277.        responsibility to hide the sensitive password information.
  278.  
  279.  
  280.  
  281.  
  282.                                                                 [Page 5]
  283.  
  284. NWG/RFC 385 Page 2
  285.  
  286.  
  287.    17. The FTP is an open-ended protocol designed for easy
  288.        expandability.  Experimental commands may be defined by
  289.        sites wishing to implement such commands.  These
  290.        experimental commands should begin with the alphabetic
  291.        character 'X'.  Standard reply codes may be used with these
  292.        commands.  If new reply codes need to assigned, these
  293.        should be chosen between 900 and 999.  If the experimental
  294.        command is useful and of general interest, it shall be
  295.        included in the FTP command repertoire.
  296.  
  297.  
  298.  
  299.        [ This RFC was put into machine readable form for entry ]
  300.        [ into the online RFC archives by BBN Corp. under the   ]
  301.        [ direction of Alex McKenzie.                      1/97 ]
  302.  
  303.  
  304.  
  305.  
  306.  
  307.  
  308.  
  309.  
  310.  
  311.  
  312.  
  313.  
  314.  
  315.  
  316.  
  317.  
  318.  
  319.  
  320.  
  321.  
  322.  
  323.  
  324.  
  325.  
  326.  
  327.  
  328.  
  329.  
  330.  
  331.  
  332.  
  333.  
  334.  
  335.  
  336.  
  337.  
  338.                                                                 [Page 6]
  339.  
  340.